/**
 * 专门用来做请求，封装了Axios的请求方法
 */
// 引入axios
import axios from 'axios'

// 申明一个对象
const request = {

    // 封装get请求的方法
    /**
     * 
     * @param {*} url  url中不包含请求参数
     * @param {*} params  参数是一个对象  {page:1,limit:10,studentName:卡卡}
     * @param {*} callBack  处理完成之后的回调函数
     */
    get(url, params,callBack) {
        // 处理参数
        if(params){
            url += '?';
            for(let key in params){
                url += key + '=' + params[key] + '&';
            }
            // 删除出多余的&符号
            url = url.substring(0,url.length-1);
        }
        axios.get( url).then(res=>{
            callBack(res.data); // 这里的data就是我们后端接口返回的实际的数据
        });
    },

    // 封装post请求的方法
    /**
     * 
     * @param {*} url 
     * @param {*} params 
     * @param {*} callBack 
     */
    post(url,params,callBack){
        axios.post(url,params).then(res=>{
            callBack(res.data);
        })
    }
    ,
    /**
     * 封装同步的get请求
     */
    async getSync(url,params){
        // 处理参数
        if(params){
            url += '?';
            for(let key in params){
                url += key + '=' + params[key] + '&';
            }
            // 删除出多余的&符号
            url = url.substring(0,url.length-1);
        }
        let response = await axios.get(url);
        return response.data;
    }
}

// 导出request对象
export default request;